Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

153
Views
Confusión de recursividad simple | JavaScript

Aprendiendo Javascript, ¿quieres saber por qué esta lógica funciona correctamente?

Específicamente, ¿por qué return multiply(arr, n - 1) * arr[n - 1]; ¿Por qué necesita ser multiplicado por arr[n - 1]

Enfoque no recursivo:

 function multiply(arr, n) { let product = 1; for (let i = 0; i < n; i++) { product *= arr[i]; } return product; }

Enfoque recursivo:

 function multiply(arr, n) { if (n <= 0) { return 1; } else { return multiply(arr, n - 1) * arr[n - 1]; } }

Ambos dan el mismo resultado, como deberían.

about 4 years ago · Santiago Gelvez
3 answers
Answer question

0

La lógica de recursión básica es multiplicar el último número con el producto de todos los números anteriores. arr[n - 1] es el último número. (las matrices están indexadas en 0, por lo que n-1 es el último índice).

Si tenemos una matriz como [3, 5, 7, 9], en la primera llamada será como multiply([3,5,7]) * 9

about 4 years ago · Santiago Gelvez Report

0

function multiply(arr, n) { if (n <= 0) { return 1; } else { return multiply(arr, n - 1) * arr[n - 1]; } }

ok, quieres multiplicar todos o algunos elementos de la matriz. Te digo que no multipliques todos los elementos, es complejo, primero multiplica desde el segundo elemento hasta el último, y por último multiplícalo hasta el primero.

haces eso:

 x0 * x1 * x2 * ... * xn => x0 * (x1 * x2 * ... * xn)

bien, hazlo de nuevo:

 x0 * (x1 * x2 * ... * xn) = x0 * (x1 * (x2 * ... * xn)

en cada paso, separas un elemento y sigues...

al final, solo tiene un elemento: xn , por lo que retrocede y multiplica a xn-1 y retrocede al resultado y multiplica a xn-2 ... y al final x0

espero ser de ayuda

about 4 years ago · Santiago Gelvez Report

0

Hablando del enfoque recursivo. La función

 function multiply(arr, n)

tiene el trabajo de multiplicar los primeros n elementos de la matriz (desde el índice 0 hasta el índice n-1)

Cuando usted llama

 multiply(arr, n-1)

le devolverá el producto de los primeros n-1 elementos de la matriz (desde el índice 0 hasta el índice n-2)

ahora tiene el producto de todos los números en la matriz excepto el último elemento que es arr[n-1]

lo que haces ahora es usar esa respuesta y multiplicar el elemento arr[n-1], que básicamente se ve así

 multiply(arr, n - 1) * arr[n - 1];

también se puede escribir de la siguiente manera

 small_answer = multiply(arr, n - 1) complete_answer = small_answer*arr[n-1] return complete_answer

ahora su variable complete_answer tendrá el producto de n elementos de la matriz, y lo devolverá como respuesta.

about 4 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!